unit32为IQ信号转换成两路uint16信号 |
您所在的位置:网站首页 › matlab uint32转成uint16 › unit32为IQ信号转换成两路uint16信号 |
IQ数据为uint32,低16bit为I路,高16bit为Q路,在此进行拆分 Q_int16 = typecast((bitshift(IQ,-16)),'int16'); I_int16 = typecast(bitand(IQ,uint32(65535)),'int16');解释: bitshift intout = bitshift(A,k) 返回向左偏移 k 位的 A,这等效于乘以 2^k。k 的负值与向右移位或除以 2^|k| 并向负无穷舍入到最接近的整数相对应。将截断任何溢出位。 如果 A 是有符号的整数数组,则 bitshift 返回算数偏移结果,并在 k 为负时保留有符号的位,k 为正时不保留有符号的位。 如果 k 为正,MATLAB将位左移,并在右侧插入 k 0 位。 如果 k 为负,并且 A 为非负,MATLAB 将位右移,并在左侧插入 |k| 0 位。 如果 k 为负,并且 A 为负,MATLAB 将位右移,并在左侧插入 |k| 1 位。 因此bitshift(IQ,-16)表示将32为的IQ信号右移16位,并在左侧插入16位0。 typecast Y = typecast(X,type) 将 X 的位模式转换为 type 指定的数据类型,而不更改基础数据。X 必须为由非复数数值组成的满标量或满向量。 因此使用 typecast 将 bitshift(IQ,-16)转换为16位无符号整数。每个 32 位值划分为2个 16位段。 bitand C = bitand(A,B) 返回 A 和 B 的按位 AND。因此将IQ信号与uint32(65535)相与即可得到低16位的数据。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |